﻿namespace Api.Common
{
    /// <summary>
    /// 1，2，3
    /// </summary>
    public enum ServerStatus
    {
        /// <summary>
        /// 線上正式版
        /// </summary>
        publish = 1,
        /// <summary>
        /// 線上測試版
        /// </summary>
        test = 2,
        /// <summary>
        /// 本地
        /// </summary>
        local = 3,
    }


    /// <summary>
    /// 單例模式在我理解來看就是不提供公開的構造方法，使用者無法實例化
    /// 提供一個靜態屬性得到實例
    /// 其實我更想直到那些情況下不能使用單例模式
    /// </summary>
    public class AppDomainHelper
    {

        private AppDomainHelper() { }

        private static AppDomainHelper instance = null;
        public static AppDomainHelper Instance
        {
            get
            {
                if (instance == null)
                    instance = new AppDomainHelper();

                return instance;
            }
        }
        /// <summary>
        /// 1表示線上正式版,2表示線上測試版，不是1，2表示本地
        /// </summary>
        /// <param name="key">web.config中默認的名稱</param>
        /// <returns></returns>
        public ServerStatus GetStatus(string key = "ServerStatus")
        {
            var status = ConfigHelper.GetValue<int>(key);

            if (status == 1)
            {
                return ServerStatus.publish;
            }
            if (status == 2)
            {
                return ServerStatus.test;
            }
            else
            {
                return ServerStatus.local;
            }
        }
    }
}
